#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "TadTablaSimbolo.h"
#include "TadTablaSimbolo.c"

int main ()
{
  Pila *pila;
  pila = (Pila *) malloc (sizeof(struct PPila));  /* Creo el espacio en memoria correspindiente*/

  char * v1 = (char *) malloc (sizeof(char));
  v1 = "id";
  char *t1 = (char *) malloc (sizeof(char));  
  t1="int";	
  char *v2 = (char *) malloc (sizeof(char));
  v2 = "id2";
  char *t2 = (char *) malloc (sizeof(char));
  t2="float";
  char * v3 = (char *) malloc (sizeof(char));
  v3="id3";
  char *t3 = (char *) malloc (sizeof(char));
  t3="int";

  initTabla(pila);
  insertarNivel(pila);

  insertar(pila->tope->dato,v1,t1);
  insertar(pila->tope->dato,v2,t2);
  insertar(pila->tope->dato,v3,t3);

  printf("Nueva Lista: \n"); 
  mostrarLista(pila->tope->dato);

  printf("\nPila: ");	
  mostrarTabla(pila);
  printf("Tam: %i\n",pila->tamanio);	
  printf("\n\n");

  if (perteneceLista(pila->tope->dato,v1) == NULL){
		printf ("el elemento no se encuentra en la lista");
  }else{
		Tupla* a = perteneceLista(pila->tope->dato,v1);
		printf("PRUEBA PERTENECE\n");
		printf("Id:  %s\n",a->id);
		printf("Tipo:  %s\n",a->tipo);		
  }
  
  printf("\n\n");
  insertarNivel(pila);
  printf("Pila: ");	
  mostrarTabla(pila);
  printf("Tam: %i\n",pila->tamanio);	


  char * v11 = (char *) malloc (sizeof(char));
  char *t11 = (char *) malloc (sizeof(char));  
  char * v22 = (char *) malloc (sizeof(char));
  char *t22 = (char *) malloc (sizeof(char));
  char * v33 = (char *) malloc (sizeof(char));
  char *t33 = (char *) malloc (sizeof(char));

  v11="idddd1";
  t11="int";
  v22="idddd2";
  t22="int";
  v33="idddd3";
  t33="float";

  insertar(pila->tope->dato,v11,t11);
  insertar(pila->tope->dato,v22,t22);
  insertar(pila->tope->dato,v33,t33);
  printf("\n\n");
  printf("Nueva Lista: \n"); 
  mostrarLista(pila->tope->dato);

 	
  printf("\n\n");
  printf("Buscar en pila: %i\n",perteneceTabla(pila,pila->tope->dato));

  printf("\n\n");
  insertarNivel(pila);
  printf("Pila: ");	
  mostrarTabla(pila);
  printf("Tam: %i\n",pila->tamanio);	

  printf("\n\n\n");

  if (perteneceLista(pila->tope->dato,v1) == NULL){
		printf ("El elemento no se encuentra en la lista\n");
  }else{
		Tupla* a = perteneceLista(pila->tope->dato,v1);
		printf("PRUEBA PERTENECE\n");
		printf("Id:  %s\n",a->id);
		printf("Tipo:  %s\n",a->tipo);		
  }		


  printf("\n\n");
  printf("Buscar en pila: %i\n",perteneceTabla(pila,pila->tope->dato));

  char * v111 = (char *) malloc (sizeof(char));
  char *t111 = (char *) malloc (sizeof(char));  
  char * v222 = (char *) malloc (sizeof(char));
  char *t222 = (char *) malloc (sizeof(char));
  char * v333 = (char *) malloc (sizeof(char));
  char *t333 = (char *) malloc (sizeof(char));

  v111="111111111111";
  t111="int";
  v222="222222222222";
  t222="float";
  v333="333333333333";
  t333="int";

  insertar(pila->tope->dato,v111,t111);
  insertar(pila->tope->dato,v222,t222);
  insertar(pila->tope->dato,v333,t333);
  printf("\n\n");
  printf("Nueva Lista: \n"); 
  mostrarLista(pila->tope->dato);

  printf("\n\n\n"); 
}
